package com.jiangyg.mall.admin.enums;

import org.apache.commons.lang.StringUtils;

/**
 * 枚举描述：权限类型
 *
 * @author jiangyg
 * @version 2.0
 * @date 2020-07-30
 */
public enum PermissionType {

    /**
     * 用户
     */
    U("U", "用户"),

    /**
     * 角色
     */
    R("R", "角色"),

    /**
     * 部门
     */
    D("D", "部门");

    /**
     * 代码
     */
    public final String code;

    /**
     * 名称
     */
    public final String name;

    PermissionType(String code, String name) {
        this.code = code;
        this.name = name;
    }

    /**
     * 功能描述：根据代码判断值
     *
     * @param code 代码
     * @return ResourceType
     */
    public static PermissionType decide(String code) {
        for (PermissionType type : PermissionType.values()) {
            if (StringUtils.equalsIgnoreCase(code, type.code)) {
                return type;
            }
        }
        return null;
    }

    /**
     * 功能描述：获取所有的资源类型
     *
     * @return 返回类型数组
     */
    public static String[] AllValues() {
        PermissionType[] resources = PermissionType.values();
        String[] rs = new String[resources.length];
        for (int i = 0; i < resources.length; i++) {
            rs[i] = resources[i].code;
        }
        return rs;
    }

    @Override
    public String toString() {
        return "PermissionType [code=" + this.code + ", name=" + this.name + "]";
    }

}
